/**
 * 
 */
package me.myachievements.persistence.tag;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import me.myachievements.persistence.PersistenceManager;

/**
 * @author besseym
 *
 */
public interface TagPersistenceManager extends PersistenceManager<Tag> {
	
	/**
	 * Get Tag with the given value.
	 */
	@Transactional
	Tag get(String value);
	
	/**
	 * Get tags associated with given goal id.
	 * @param goalId
	 * @return
	 */
	@Transactional
	List<Tag> getAssociatedTags(Long goalId);
	
	/**
	 * Get tags not associated with given goal id.
	 * @param goalId
	 * @return
	 */
	@Transactional
	List<Tag> getNotAssociatedTags(Long goalId);

}
